package com.wl.dao;

import java.util.List;

import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import com.wl.entity.Emp;

@Repository
public interface EmpMapper {
	/**
	 * 根据empid删除信息
	 * 
	 * @param empid
	 * @return
	 */
	public int deleteByPrimaryKey(Integer empid);

	/**
	 * 添加信息
	 * 
	 * @param record
	 * @return
	 */
	public int insert(Emp record);

	/**
	 * 动态增加
	 * 
	 * @param record
	 * @return
	 */
	public int insertSelective(Emp record);

	/**
	 * 根据empid查询信息
	 * 
	 * @param empid
	 * @return
	 */
	public Emp selectByPrimaryKey(Integer empid);

	/**
	 * 动态修改
	 * 
	 * @param record
	 * @return
	 */
	public int updateByPrimaryKeySelective(Emp record);

	/**
	 * 根据empid修改信息
	 * 
	 * @param record
	 * @return
	 */
	public int updateByPrimaryKey(Emp record);

	/**
	 * 根据empno添加信息
	 * 
	 * @param emp
	 * @return
	 */
	public boolean addEmp(Emp emp);

	/**
	 * 根据empno修改信息
	 * 
	 * @param record
	 * @return
	 */
	public boolean updateByEmpno(Emp record);

	/**
	 * 根据empno删除信息
	 * 
	 * @param empno
	 * @return
	 */
	public boolean deleteByEmpno(String empno);

	/**
	 * 分页+模糊查询
	 * 
	 * @param start    起始位置
	 * @param limit    每页记录数
	 * @param keywords 模糊查询关键字
	 * @return 当页数据list
	 */
	public List<Emp> selectEmpByPage(@Param("start") Integer start, @Param("pageSize") Integer limit,
			@Param("keywords") String keywords);

	/**
	 * 模糊查询得到总记录数
	 * 
	 * @param keywords 模糊查询关键字
	 * @return 记录总数
	 */
	public int selectEmpByLikeCount(@Param("keywords") String keywords);

	/**
	 * 分页+模糊查询     -----多功能动态查询 测试
	 * 
	 * @param start    起始位置
	 * @param limit    每页记录数
	 * @param keywords 模糊查询关键字
	 * @return 当页数据list
	 */
	public List<Emp> selectByPageS(@Param("start") Integer start, @Param("pageSize") Integer limit,
			@Param("keywords") String keywords,@Param("keywords2") String keywords2,@Param("keywords3") String keywords3,@Param("keywords4") String keywords4,@Param("keywords5") String keywords5);

	/**
	 * 模糊查询得到总记录数   -----多功能动态查询 测试
	 * 
	 * @param keywords 模糊查询关键字
	 * @return 记录总数
	 */
	public int selCountS(@Param("keywords") String keywords,@Param("keywords2") String keywords2,@Param("keywords3") String keywords3,@Param("keywords4") String keywords4,@Param("keywords5") String keywords5);
	
	/**
	 * 根据员工编号查询 关联部门
	 * 
	 * @param empno
	 * @return
	 */
	public Emp selectByEmpNo(String empno);

	/**
	 * 按照编号模糊查询所有 关联部门
	 * 
	 * @param empno
	 * @return
	 */
	public List<Emp> selectEmpByLike(String empno);

	/**
	 * 根据empno查询信息
	 * 
	 * @param empno
	 * @return
	 */
	public Emp selectEmpById(String empno);

	/**
	 * 查询账号和密码
	 * 
	 * @param empno
	 * @param emppwd
	 * @return
	 */
	public Emp findByNoAndPwd(@Param("empno") String empno, @Param("emppwd") String emppwd);

	/**
	 * 根据empno动态修改信息
	 * 
	 * @param record
	 * @return
	 */
	public boolean updateByKey(Emp record);
	
	/**
	 * 统计员工的数量
	 * @return
	 */
	public int getEmpsCount();

}